package br.unifor.ads.pjappfinanceiro.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import br.unifor.ads.pjappfinanceiro.entity.Clientes;
import br.unifor.ads.pjappfinanceiro.entity.Usuario;

public class UsuarioDAO {

	private EntityManager em = new EntityManager() {

		@Override
		public Object trataResultSet(ResultSet resultSet) throws SQLException {

			Usuario usuario = new Usuario();
			usuario.setId(resultSet.getInt("id_usuario"));
			usuario.setNome(resultSet.getString("nome_usuario"));
			usuario.setLogin(resultSet.getString("login_usuario"));
			usuario.setSenha(resultSet.getString("senha_usuario"));

			return usuario;
		}
	};

	public void salvar(Usuario usuario) throws SQLException {

		String sql = "insert into tb_usuario(nome_usuario, "
				+ "login_usuario, senha_usuario) values (?, ?, ?)";
		em.executeQuery(sql, usuario.getNome(), usuario.getLogin(),
				usuario.getSenha());
	}

	public void atualizar(Usuario usuario) throws SQLException {

		String sql = "update tb_usuario set nome_usuario = ?, "
				+ "login_usuario = ?, senha_usuario = ? where id_usuario = ?  ";
		em.executeQuery(sql, usuario.getNome(), usuario.getLogin(),
				usuario.getSenha(), usuario.getId());

	}

	public void excluirPorId(Integer id) throws SQLException {
		String sql = "delete from tb_usuario where id_usuario = ?";
		em.executeQuery(sql, id);
	}

	public void excluirTodos() throws SQLException {

		String sql = "delete from tb_usuario";
		em.executeQuery(sql);
	}

	public Usuario buscarPorId(Integer id) throws SQLException {

		String sql = "select id_usuario, nome_usuario, "
				+ "login_usuario, senha_usuario from tb_usuario where id_usuario = ?";
		return (Usuario) em.getSingleResult(sql, id);
	}
	
	public Usuario buscarPorLogin(String login) throws SQLException {

		String sql = "select id_usuario, nome_usuario, "
				+ "login_usuario, senha_usuario from tb_usuario where login_usuario = ?";
		return (Usuario) em.getSingleResult(sql, login);
	}
	
	


	public Usuario buscarPorLoginESenha(String login, String senha) throws SQLException{
        String sql = "select id_usuario, nome_usuario, login_usuario, senha_usuario from tb_usuario where login_usuario= ? and senha_usuario = ?";
        return (Usuario)em.getSingleResult(sql, login, senha);
}

}
